1. Field of the Invention
The present invention generally relates to electronic data processing and database systems. More particularly, and without limitation, the invention relates to systems, methods, and computer program products for data processing.
2. Background Information
A significant problem in computer systems is the efficient use and management of the data stored in memory. The earliest computers maintained an independent file or database for the exclusive use of each program which ran on the computer. The difficulty with this arrangement is that for similar application programs, the databases maintained by each of these programs contained a significant amount of data redundancy.
One solution to this problem is the creation of a common database representing the collection of all interrelated data to serve a number of application programs. The data is stored in the database in an order or arrangement which is independent of the ordering of the data in the application programs which use the data.
Typically, a computer has a database management system which is a set of program instructions to manage this data and to function as an interface between the data and the application programs requesting access to the data. In prior systems, the database management system interface function is accomplished by a structure known as a schema. The schema is a mapping or a data model for the database. The schema indicates which elements in the database are required for use by a particular application program. In this fashion, the database management system isolates users from each other, since each application program accesses the common database through the schema which is maintained in the database management system for that particular application program. The schema permits access only to the data required for the operation of each application program.
Each database management system has its own architecture which relates to the physical structure and organization of the memory devices which are controlled by the database management system. The architecture also defines the logical interconnection and interrelation of the various files, records, record segments and schemas within the common database. This architecture is defined at the time the database is created and is reflected in an entity contained in each database management system called the data dictionary.
The data dictionary is a software structure that contains a list of all the application program databases contained in the common database and their associated schemas. The data dictionary also contains a definition of each schema and the various types of data elements which are stored in memory along with data security information.
One difficulty with existing data dictionaries is that they are static and cannot be changed except by the database administrator. Further, the database administrator must recompile the database system and the data dictionary with each change that is made to these elements.
A computer system user is typically unaware of the underlying database management system architecture and has no ability to change this architecture except through the database administrator. The database management system also stores data in a form and format dictated by the database management system architecture. The data can be accessed only by requesting the data in a manner that is consistent with this form and format. Therefore, the computer system user must write database-dependent application programs (data form and format specific) to access the data stored in the database. This rigidity of known database management systems introduces a whole new set of problems, since the user cannot obtain information describing the collection of all data residing in the database. The user also cannot obtain the information contained in the database in a form and organization desired by the user without extensive application programs created by software experts.
U.S. Pat. No. 4,774,661 shows a database management system which has an active data dictionary that the user can both access and modify. The user makes use of simple commands to control, order and query not only the underlying data controlled by the database management system, but also the contents of the data dictionary.
This capability enables the user to write generic application programs which are logically independent of the data, since the subject database management system enables the user/application program to access all data in the database independent of each application program's data model.
One disadvantage of database management systems of this type is that the application programs need to be aware of the multiple specific databases. In particular, it is a disadvantage of known systems that the application programs require knowledge of the structures of the databases and need to be programmed accordingly.